package com.xiangxiao.rpan.storage.service;

import com.xiangxiao.rpan.storage.dto.VerifyResultDTO;
import com.xiangxiao.rpan.storage.entity.PasswordConfig;

import java.util.List;

/**
 * @auther xiangxiao
 * @email 573768011@qq.com
 * @data 2023/11/22 15:20
 */
public interface PasswordConfigService {

  /**
   * 根据存储源 ID 查询密码规则列表
   * @param   storageId 存储源 ID
   * @return  密码规则列表
   */
  List<PasswordConfig> findByStorageId(Integer storageId);

  /**
   * 批量保存指定存储源 ID 的密码规则列表
   * @param   storageId 存储源 ID
   * @param   passwordConfigList 存储源类别
   */
  void batchSave(Integer storageId, List<PasswordConfig> passwordConfigList);

  /**
   * 根据存储源 id 删除所有密码规则
   * @param   storageId 存储源 ID
   */
  int deleteByStorageId(Integer storageId);


  /**
   * 校验密码
   * @param   storageId 存储源 ID
   * @param   path 请求路径
   * @param   inputPassword 用户输入的密码
   * @return  是否校验通过
   */
  VerifyResultDTO verifyPassword(Integer storageId, String path, String inputPassword);
}
